Calibration method and calibration system for robot

ABSTRACT

A pair of manipulators are caused to take a plurality of attitudes in a state where distal ends of the manipulators are coupled to each other, coordinates of joints between links at each attitude change are acquired on the basis of detection signals, at each attitude change, of rotary encoders provided for servomotors that drive the links of the manipulators, and a position and attitude of an installation point of a slave robot with reference to an installation point of a master robot are calculated on the basis of the joint coordinates acquired at the corresponding attitude change in a forward kinematics manner. A deviation vector for each attitude change between actual measured values of the installation point of the slave robot and the calculated values of the installation point of the slave robot is calculated, and robot constants of both manipulators are identified from the deviation vector.

INCORPORATION BY REFERENCE

The disclosure of Japanese Patent Application No. 2012-049329 filed onMar. 6, 2012 including the specification, drawings and abstract isincorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to a calibration method and calibration system fora robot.

2. Description of Related Art

A calibration method for mechanism parameters, or the like, of a robotis known as a method described in Japanese Patent ApplicationPublication No. 8-27241 (JP 8-27241 A), Japanese Patent ApplicationPublication No. 2001-50741 (JP 2001-50741 A), or the like. In JP 8-27241A, a robot is calibrated by a method of collectively calibrating a handcamera and the robot at the same time.

In JP 2001-50741 A, the distal end of a three-dimensional measuringdevice is coupled to the distal end of an arm of a robot, the positionand attitude of the distal end portion of the arm of the robot aremeasured, and a plurality of teach points are measured while changingthe position and attitude of the robot. By so doing, mechanismparameters (also called robot constants) of the robot are obtained, andcalibration is performed.

Japanese Patent Publication No. 4-45842 describes a method of changingthe attitude of a robot distal end in a state where the robot distal endis engaged with a displacement detector and then performing calibrationon the basis of data of joint angles of joints and data of thedisplacement detector.

JP 8-27241 A to Japanese Patent Publication No. 4-45842 require a handcamera, a three-dimensional measuring device or a displacement detector,so cost increases.

SUMMARY OF THE INVENTION

The invention provides a calibration method and calibration system for arobot, which are able to perform calibration without using a device,such as a three-dimensional measuring device, a displacement detectorand a hand camera, by changing attitudes of a pair of manipulators whilecoupling distal ends of the pair of manipulators to each other.

A first aspect of the invention provides a calibration method for arobot. The calibration method includes: coupling distal ends of a pairof manipulators to each other; setting one of the manipulators as amaster robot; setting the other one of the manipulators as a slaverobot; causing the master robot and the slave robot to take a pluralityof attitudes by outputting commands from a control device to actuatorsthat drive links of the master robot in a state where the master robotand the slave robot are coupled to each other; acquiring coordinates ofjoints between the links at the time of each attitude change on thebasis of position detection signals of position detectors respectivelyprovided for the actuators that drive the links of the master robot andlinks of the slave robot at the time of each attitude change;calculating a position and attitude of an installation point of theslave robot at the time of each attitude change with reference to aninstallation point of the master robot on the basis of the coordinatesof the joints, which are acquired at the time of the corresponding oneof the attitude changes, in a forward kinematics manner; calculatingdeviations for each attitude change between actual coordinates of theinstallation point of the slave robot and the calculated coordinates ofthe installation point of the slave robot; and identifying robotconstants of the pair of manipulators from the calculated deviations.

With the above configuration, it is possible to provide the calibrationmethod for a robot, which is able to perform calibration without using adevice, such as a three-dimensional measuring device, a displacementdetector and a hand camera.

A second aspect of the invention provides a calibration system for arobot. The calibration system includes: a pair of manipulators, each ofwhich includes a plurality of links, actuators that are respectivelyprovided for joints of the links and that drive the links and positiondetectors that are respectively provided for the actuators, thatrespectively detect positions of joint axes of the links and that outputposition detection signals; a control unit that sets one of themanipulators as a master robot, that sets the other one of themanipulators as a slave robot and that causes the master robot and theslave robot to take a plurality of attitudes by outputting commands tothe actuators of the master robot in a state where distal ends of thepair of manipulators are coupled to each other; a computing unit thatacquires coordinates of the joints between the links at the time of eachattitude change of an installation point of the slave robot with respectto an installation point of the master robot on the basis of theposition detection signals, and that calculates a position and attitudeof the installation point of the slave robot at the time of thecorresponding one of the attitude changes on the basis of thecoordinates of the joints in a forward kinematics manner; a deviationcomputing unit that calculates deviations for each attitude change fromactual coordinates of the installation point of the slave robot and thecalculated coordinates of the installation point of the slave robot; andan identification unit that identifies robot constants of the pair ofmanipulators from the calculated deviations.

With the above configuration, it is possible to provide the calibrationsystem for a robot, which is able to perform calibration without using adevice, such as a three-dimensional measuring device, a displacementdetector and a hand camera.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, advantages, and technical and industrial significance ofexemplary embodiments of the invention will be described below withreference to the accompanying drawings, in which like numerals denotelike elements, and wherein:

FIG. 1 is a skeletal view of each manipulator according to an embodimentof the invention;

FIG. 2 is a schematic configuration view of manipulators according tothe embodiment;

FIG. 3 is a schematic configuration view of a calibration system for arobot according to the embodiment;

FIG. 4 is a schematic view for illustrating a calibration method for arobot according to the embodiment; and

FIG. 5 is a flowchart of the calibration method according to theembodiment.

DETAILED DESCRIPTION OF EMBODIMENTS

Hereinafter, a calibration method and calibration system for a robotaccording to an embodiment that is an example of the invention will bedescribed with reference to FIG. 1 to FIG. 5. First, a pair ofmanipulators 10A and 10B according to the present embodiment will bedescribed. The manipulators 10A and 10B are placed within a range inwhich it is possible to couple both distal ends of the manipulators 10Aand 10B to each other. In the present embodiment, both manipulators 10Aand 10B have the same components, so the manipulator 10A will bedescribed. Like reference numerals to those of the components of themanipulator 10A denote the components of the manipulator 10B, and thedescription thereof is omitted.

As shown in FIG. 1, the manipulator 10A is formed by serially couplingeight links 11 to 18 by seven joints 21 to 27. The manipulator 10A,which is an articulated robot, is a robot that has 7 degrees of freedom(degree of freedom n=7), in which the links 12 to 18 are allowed to turnat the seven joints 21 to 27.

One end of the first link 11 is fixed to a floor surface FL, and theother end of the first link 11 is connected to one side of the firstjoint 21. One end of the second link 12 is connected to the other sideof the first joint 21, and one side of the second joint 22 is connectedto the other end of the second link 12. Similarly, the third link 13,the fourth link 14, the fifth link 15, the sixth link 16, the seventhlink 17 and the eighth link 18 are respectively coupled sequentially viathe third joint 23, the fourth joint 24, the fifth joint 25, the sixthjoint 26 and the seventh joint 27.

As shown in FIG. 1, the other side of the first joint 21 is rotatableabout an axis extending vertically in FIG. 1 with respect to the oneside as indicated by an arrow 31. Thus, the second link 12 is turnablein a direction indicated by the arrow 31 about the rotation axis (J1axis) of the first joint 21 with respect to the adjacent first link 11.

The other side of the second joint 22 is rotatable about an axis (J2axis) extending in a direction perpendicular to the sheet in FIG. 1 withrespect to the one side as indicated by an arrow 32. Thus, the thirdlink 13 is rotatable in a direction indicated by the arrow 32 about therotation axis of the second joint 22 with respect to the adjacent secondlink 12.

The third joint 23, the fourth joint 24, the fifth joint 25, the sixthjoint 26 and the seventh joint 27 each are rotatable, and the fourthlink 14, the fifth link 15, the sixth link 16, the seventh link 17 andthe eighth link 18 are also respectively turnable in directionsindicated by arrows 33 to 37 about the rotation axes (J3 axis to J7axis) of the joints 23 to 27. Note that in the entire specification, thepairs of links 11 to 18 that are coupled via the corresponding joints 21to 27 are termed mutually adjacent pairs of links 11 to 18. The J1 axisto the J7 axis correspond to joint axes.

FIG. 2 shows the manipulator 10A in simplified skeletal view as comparedwith FIG. 1. As shown in the drawing, a first servomotor 41 is installedin the first joint 21. When electric power is supplied to the firstservomotor 41, the first servomotor 41 turns the second link 12 withrespect to the first link 11.

A second servomotor 42 is installed in the second joint 22. Whenelectric power is supplied to the second servomotor 42, the secondservomotor 42 turns the third link 13 with respect to the second link12. Similarly, servomotors 43 to 47 are respectively installed in thethird joint 23, the fourth joint 24, the fifth joint 25, the sixth joint26 and the seventh joint 27. When electric power is supplied to theservomotors 43 to 47, the servomotors 43 to 47 respectively turn thecorresponding links 14 to 18.

The motors are provided in the corresponding joints; however, in FIG. 2,the motors are shown separately from the joints for the sake ofconvenience of illustration. In the present embodiment, AC motors thatserve as the servomotors are used as actuators; however, the actuatorsare not limited to them.

A tool 49 is mounted at the distal end of the eighth link 18. The tool49 together with the eighth link 18 is turnable in a direction indicatedby an arrow 37 about the rotation axis (J7 axis) of the seventh joint 27as shown in FIG. 1. The tool 49 is, for example, a hand that is able tograsp a workpiece, or the like. The type of tool 49 does not affect theinvention, so it is not limited.

As described above, the manipulator 10A causes an accumulated rotationangle of the second link 12 to eighth link 18 to work on the tool 49provided at the distal end portion by turning the second link 12 to theeighth link 18 by driving the first servomotor 41 to the seventhservomotor 47, so it is possible to bring the position and attitude ofthe distal end of the tool 49 into coincidence with a target positionand a target attitude appropriate for work of the tool 49.

Next, the electrical configuration of an articulated robot will bedescribed by focusing on a controller RC that serves as a control unitand a control device that control the manipulators 10A and 10B withreference to FIG. 3.

The controller RC includes a computer 90, PWM generators 51 to 57 forthe manipulator 10A, and a motor drive unit 50A. The PWM generators 51to 57 for the manipulator 10A are electrically connected to the computer90. The motor drive unit 50A includes servo amplifiers 61 to 67 that areelectrically connected to the PWM generators 51 to 57 for themanipulator 10A. The controller RC further includes a motor drive unit50B.

The motor drive unit 50B, as well as the motor drive unit 50A, includesa plurality of PWM generators (not shown) for the manipulator 10B andservo amplifiers (not shown). The PWM generators (not shown) for themanipulator 10B are electrically connected to the computer 90. The servoamplifiers are electrically connected to the PWM generators (not shown).

The servo amplifiers 61 to 67 of the motor drive unit 50A arerespectively electrically connected to the first servomotor 41 toseventh servomotor 47 of the manipulator 10A. In addition, the servoamplifiers (not shown) of the motor drive unit 50B are respectivelyelectrically connected to the first servomotor 41 to seventh servomotor47 of the manipulator 10B.

The computer 90 outputs joint position command values to the PWMgenerators 51 to 57 of the motor drive units 50A and 50B. The PWMgenerators 51 to 57 respectively output PWM signals to the servoamplifiers 61 to 67 on the basis of the joint position command values.The servo amplifiers 61 to 67 respectively turn the links 12 to 18 byactuating the servomotors 41 to 47 on the basis of outputs thereof.

Rotary encoders 71 to 77 are respectively incorporated in theservomotors 41 to 47, and are connected to the computer 90 via aninterface 80. The rotary encoders 71 to 77 respectively detect therotation angles of the servomotors 41 to 47, that is, respectivelydetect the rotation angles of the links 12 to 18 with respect to thecorresponding adjacent links 11 to 17, and transmit the detectionsignals of the rotation angles, that is, position detection signals, tothe controller RC. The rotary encoders 71 to 77 correspond to positiondetectors. Each of the position detectors is not limited to the rotaryencoder. Each of the position detectors may be a resolver or apotentiometer.

Instead of respectively providing the rotary encoders 71 to 77 at thefirst servomotor 41 to the seventh servomotor 47, sensors that are ableto respectively directly detect the rotation angles of the links 12 to18 may be provided at the links 12 to 18 or the first joint 21 to theseventh joint 27.

The computer 90 includes a CPU 91, a ROM 92, a RAM 93, a nonvolatilestorage unit 94, such as a hard disk, an interface 95, and the like,which are electrically connected to one another via a bus 96.

The storage unit 94 stores various data, work programs for causing therobot to carry out various types of work, a calibration program, variousparameters, and the like. The ROM 92 stores a system program of anoverall system. The RAM 93 is a working memory of the CPU 91, andtemporarily stores data when various processings, or the like, areexecuted. The CPU 91 corresponds to a computing unit, a deviationcomputing unit and an identification unit.

An input device 82 is connected to the controller RC via the interface95. The input device 82 is an operating panel that has a monitor screen,various input keys (which are not shown), and the like, and allows aworker to input various data. The input device 82 has a power switch ofthe articulated robot, and allows to input a final target position andfinal target attitude of the distal end of the tool 49 mounted at thedistal end portion of each of the manipulators 10A and 10B, a positionand attitude of the distal end of the tool 49 at an interpolation pointto the computer 90 and allows an input for changing the attitude of eachof the manipulators 10A and 10B through jog operation, or the like, tothe computer 90.

In the present embodiment, brake action on each servomotor may begenerated through servo control over the servomotor (servo brake) andmay be generated through a mechanical brake (not shown). The brakeaction that is generated by the mechanical brake on each servomotor isallowed to be subjected to on/off control by operating the input device82 independently of brake through servo control.

In the present embodiment, the calibration system is formed of themanipulators 10A and 10B, the controller RC and the CPU 91 of thecontroller RC. The manipulators 10A and 10B each include the first link11 to the eighth link 18, the first servomotor 41 to the seventhservomotor 47 and the rotary encoders 71 to 77.

Operation of Embodiment

Next, the operation of the calibration method and calibration system foran articulated robot according to the present embodiment will bedescribed.

FIG. 4 is a schematic view that illustrates a calibration method for arobot. FIG. 5 is a flowchart of the calibration method. The workermeasures coordinates of an installation point WA of the manipulator 10Aand coordinates of an installation point WB of the manipulator 10B in aworld coordinate system with the use of a measuring jig, or the like, inadvance and stores the coordinates in the storage unit 94 via the inputdevice 82. The coordinates of the installation point WB of themanipulator 10B, which are measured by the worker with the use of ameasuring jig, or the like, in the world coordinate system in advance,are termed actual measured values in the following description. Here,the world coordinate system is a three-dimensional coordinate system inthe case where a certain place is set as a point of origin in an actualspace. In the present embodiment, the world coordinate system is athree-dimensional system that uses the installation point WA between thefirst link 11 of the manipulator 10A and the floor surface FL as a pointof origin.

First, in step 10 (hereinafter, step is abbreviated as “S”), the workercouples both distal ends of the manipulators 10A and 10B, that is, boththe tools 49, to each other in a state where the powers of the robotsare turned off. A method of coupling both the tools 49 to each other isnot limited. For example, both the tools 49 are fastened to each otherby a bolt and a nut, or the like.

In S20, the worker turns on the powers (not shown) of the robots, usesthe input device 82 to release the mechanical brake (not shown) of themanipulator 10B that serves as a slave robot. Thus, the manipulator 10Bis set so as to be able to follow the manipulator 10A. In this state,the worker changes the attitude of the manipulator 10A k times throughjog operation of the input device 82. Through the attitude changes, theattitude of the manipulator 10B is also changed. Each time the attitudeis changed, the worker operates the input device 82 to cause the CPU 91to acquire the rotation angles of the joints during the attitude changefrom the rotary encoders 71 to 77, and store the rotation angles in thestorage unit 94.

Attitude change is performed such that the number k of attitude changessatisfies the inequality “6 k≧the total number of robot constants ofboth manipulators”. “6” indicates the number of installation pointcoordinates X (x, y, z, a, b, c) of the installation point WB. x, y, zdenote three-dimensional coordinate values in the world coordinatesystem, and a, b, c respectively denote the rotation angles (yaw angle,pitch angle, roll angle) around the three-dimensional axes. In thespecification, the installation point coordinates are intended toinclude three-dimensional coordinates and rotation angles around theaxes of the three dimension as described above.

In S30, the worker starts up the calibration program by operating theinput device 82.

As the program is started up, the CPU 91 computes joint coordinates θ1to θm (in the present embodiment, m=14) of the joints of each of themanipulator 10A and the manipulator 10B for each attitude change on thebasis of the rotation angles of the joints acquired for each attitudechange in S20, and stores those calculated results in the storage unit94.

The joint coordinates of each joint are the coordinate values of thejoint between each link and the adjacent link, and are, for example, thecoordinate values of the first joint 21, which is the joint between thefirst link 11 and the second link 12, in the world coordinate system.The CPU 91 acquires the joint coordinates of each of the first joint 21and the second joint 22 to the seventh joint 27 in the world coordinatesystem on the basis of the rotation angles acquired from the rotaryencoders 71 to 77 of each of the manipulators, and stores the calculatedresults in the storage unit 94.

In S40, the CPU 91 calculates the robot constants. The robot constantsare constants unique to the robot, and typically include link lengths, aposition gap (offset) between any adjacent links, a twist, an offsetvalue of the encoder of each joint axis, a warpage of each link, or thelike. In FIG. 1, p1 to p4 are illustrated as the robot constants. Therobot constant p1 is, for example, the link length of the first link 11,the robot constant p2 is an offset between the first joint 21 and thesecond joint 22, the robot constant p3 is the link length of the secondlink 12, and the robot constant p4 is an angle of the third link 13 froma reference plane that passes through the second joint 22. These areillustrative and not restrictive. Robot constants before calibration arestored in the storage unit 94 as defaults in advance.

The following definition applies to the following mathematicalexpressions that are calculated using the robot constants. The jointcoordinates are denoted by θ (θ1, θ2, . . . , θm). The robot constantsare denoted by p (p1, p2, . . . , pn). n denotes the total number of therobot constants of the two manipulators.

The installation point coordinates X of the installation point WB of themanipulator 10B may be expressed by the mathematical expression (1).[Mathematical Expression 1]x=g _(x)(θ,p)y=g _(y)(θ,p)z=g _(z)(θ,p)a=g _(a)(θ,p)b=g _(b)(θ,p)=c=g _(c)(θ,p).  (1)When the mathematical expression (1) is totally differentiated, it maybe expressed by the mathematical expression (2).

$\begin{matrix}\left\lbrack {{Mathematical}\mspace{14mu}{Expression}\mspace{14mu} 2} \right\rbrack & \; \\{{{dx} = {{\frac{\partial{g_{x}\left( {\theta,p} \right)}}{\partial p_{1}}{dp}_{1}} + {\frac{\partial{g_{x}\left( {\theta,p} \right)}}{\partial p_{2}}{dp}_{2}} + \cdots + {\frac{\partial{g_{x}\left( {\theta,p} \right)}}{\partial p_{n}}{dp}_{n}}}}{{dy} = {{\frac{\partial{g_{y}\left( {\theta,p} \right)}}{\partial p_{1}}{dp}_{1}} + {\frac{\partial{g_{y}\left( {\theta,p} \right)}}{\partial p_{2}}{dp}_{2}} + \cdots + {\frac{\partial{g_{y}\left( {\theta,p} \right)}}{\partial p_{n}}{dp}_{n}}}}\mspace{40mu}\vdots{{d\; c} = {{\frac{\partial{g_{c}\left( {\theta,p} \right)}}{\partial p_{1}}{dp}_{1}} + {\frac{\partial{g_{c}\left( {\theta,p} \right)}}{\partial p_{2}}{dp}_{2}} + \cdots + {\frac{\partial{g_{c}\left( {\theta,p} \right)}}{\partial p_{n}}{dp}_{n}}}}} & (2)\end{matrix}$dx indicates a difference between an x coordinate that is calculatedfrom the rotation angle acquired from a corresponding one of the rotaryencoders and an actual coordinate. This also applies to dy, dz, da, dband dc.

Specifically, the CPU 91 calculates the installation point coordinates Xof the installation point WB for each attitude change in a forwardkinematics manner (hereinafter, these values are termed calculatedvalues), and computes differences between the calculated values andknown coordinates (actual measured values) of the installation point WBof the manipulator 10B. By so doing, the CPU 91 obtains dx, dy, dz, da,db and dc.

Here, when attitude change is performed k times and the above values aremeasured, 6 k data are obtained. The dX of the manipulator 10B may beexpressed by the mathematical expression (3) and the mathematicalexpression (4).

$\begin{matrix}\left\lbrack {{Mathematical}\mspace{14mu}{Expression}\mspace{14mu} 3} \right\rbrack & \; \\{{{dX} = \begin{bmatrix}{dx}_{\theta = {\theta\; 1}} \\{dx}_{\theta = {\theta\; 2}} \\\vdots \\{dx}_{\theta = {\theta\; k}} \\\vdots \\{d\; c_{\theta = {\theta\; 1}}} \\{d\; c_{\theta = {\theta\; 2}}} \\\vdots \\{d\; c_{\theta = {\theta\; k}}}\end{bmatrix}},} & (3) \\{{J = \begin{bmatrix}\frac{\partial{g_{x}\left( \theta_{1} \right)}}{\partial p_{1}} & \frac{\partial{g_{x}\left( \theta_{1} \right)}}{\partial p_{2}} & \cdots & \frac{\partial{g_{x}\left( \theta_{1} \right)}}{\partial p_{n}} \\\frac{\partial{g_{x}\left( \theta_{2} \right)}}{\partial p_{1}} & \frac{\partial{g_{x}\left( \theta_{2} \right)}}{\partial p_{2}} & \cdots & \frac{\partial{g_{x}\left( \theta_{2} \right)}}{\partial p_{n}} \\\vdots & \; & \; & \; \\\frac{\partial{g_{x}\left( \theta_{k} \right)}}{\partial p_{1}} & \frac{\partial{g_{x}\left( \theta_{k} \right)}}{\partial p_{2}} & \cdots & \frac{\partial{g_{x}\left( \theta_{k} \right)}}{\partial p_{n}} \\\vdots & \; & \; & \; \\\frac{\partial{g_{c}\left( \theta_{1} \right)}}{\partial p_{1}} & \frac{\partial{g_{c}\left( \theta_{1} \right)}}{\partial p_{2}} & \cdots & \frac{\partial{g_{c}\left( \theta_{1} \right)}}{\partial p_{n}} \\\frac{\partial{g_{c}\left( \theta_{2} \right)}}{\partial p_{1}} & \frac{\partial{g_{c}\left( \theta_{2} \right)}}{\partial p_{2}} & \cdots & \frac{\partial{g_{c}\left( \theta_{2} \right)}}{\partial p_{n}} \\\vdots & \; & \; & \; \\\frac{\partial{g_{c}\left( \theta_{k} \right)}}{\partial p_{1}} & \frac{\partial{g_{c}\left( \theta_{k} \right)}}{\partial p_{2}} & \cdots & \frac{\partial{g_{c}\left( \theta_{k} \right)}}{\partial p_{n}}\end{bmatrix}},{{dp} = \begin{bmatrix}{dp}_{1} \\{dp}_{2} \\\vdots \\{dp}_{n}\end{bmatrix}}} & \; \\\left\lbrack {{Mathematical}\mspace{14mu}{Expression}\mspace{14mu} 4} \right\rbrack & \; \\{{dX} = {Jdp}} & (4)\end{matrix}$In the mathematical expression (3), “θ=θk” (k=1 to 14) suffixed to dxand dc indicates that it relates to the joint coordinates of any one ofthe first joint 21 to seventh joint 27 of the manipulator 10A and thefirst joint 21 to seventh joint 27 of the manipulator 10B.

In the mathematical expression (3) and the mathematical expression (4),J is Jacobian matrix, and dp is a deviation vector of the robotconstants. Therefore, dp may be expressed by the mathematical expression(5).[Mathematical Expression 5]dp=(J ^(T) J)⁻¹ J ^(T) dX  (5)The CPU 91 obtains the deviation vector dp on the basis of theabove-described data that are larger in number than the robot constantsby applying a method of least squares. That is, the CPU 91 updates therobot constants from the obtained deviation vector of the robotconstants and repeatedly makes convergence calculation until thedeviation of the installation point WB becomes smaller than or equal toa preset threshold. Thus, the CPU 91 identifies the robot constants.

The present embodiment has the following features.

(1) The calibration method according to the present embodiment couplesthe distal ends of the manipulators 10A and 10B to each other, sets themanipulator 10A as the master robot, sets the manipulator 10B as theslave robot, and causes the master robot and the slave robot to take aplurality of attitudes by outputting commands from the controller RC(control device) to the servomotors 41 to 47 (actuators) that drive thelinks of the master robot in a state where the master robot and theslave robot are coupled to each other. The joint coordinates between thelinks at the time of each attitude change are acquired on the basis ofthe rotation angles (position detection signals) of the rotary encoders71 to 77 (position detectors) respectively provided for the servomotors(actuators) that drive the links of the master robot and the links ofthe slave robot at the time of each attitude change. The position andattitude of the installation point WB of the slave robot at the time ofeach attitude change with reference to the installation point WA of themaster robot are calculated on the basis of the joint coordinatesacquired at the time of the corresponding one of the attitude changes ina forward kinematics manner. Furthermore, the deviation vector dp(deviations) for each attitude change between actual coordinates (actualmeasured values) of the installation point WB of the slave robot and thecalculated values of the installation point WB of the slave robot iscalculated. The robot constants of the manipulators are identified fromthe deviation vector dp. As a result, according to the presentembodiment, it is possible to perform calibration without using adevice, such as a three-dimensional measuring device, a displacementdetector and a hand camera. Furthermore, it is possible to identify boththe robot constants of the manipulators.

(2) The calibration system according to the present embodiment includesthe manipulators 10A and 10B, each of which includes the links 11 to 18,the servomotors 41 to 47 (actuators) provided for the joints of thelinks, and the rotary encoders 71 to 77 (position detectors) thatrespectively detect the positions of the J1 axis to J7 axis (joint axes)of the links. In addition, the calibration system includes thecontroller RC (control unit) that sets the manipulator 10A as the masterrobot, that sets the manipulator 10B as the slave robot and that causesthe master robot and the slave robot to take a plurality of attitudes byoutputting commands to the servomotors 41 to 47 (actuators) of themaster robot in a state where the distal ends of the manipulators 10Aand 10B are coupled to each other.

The calibration system includes the rotary encoders 71 to 77 (positiondetectors) that are respectively provided for the servomotors(actuators) that drive the links of the master robot and the links ofthe slave robot at the time of each attitude change. The CPU 91 of thecalibration system functions as a computing unit that calculates theposition and attitude of the installation point WB of the slave robot atthe time of each attitude change on the basis of the coordinates of thejoints (joint coordinates) acquired at the time of the corresponding oneof the attitude changes with reference to the installation point WA ofthe master robot in a forward kinematics manner and a deviationcomputing unit that calculates deviations for each attitude changebetween the actual coordinates (actual measured values) of theinstallation point WB of the slave robot and the calculated coordinatesvalues of the installation point of the slave robot. The CPU 91 of thecalibration system further functions as an identification unit thatidentifies the robot constants of each of the manipulators 10A and 10Bfrom the calculated deviations. As a result, according to the presentembodiment, it is possible to provide the calibration system for arobot, which is able to perform calibration without using a device, suchas a three-dimensional measuring device, a displacement detector and ahand camera, and it is possible to provide the calibration system thatis able to identify both the robot constants of the manipulators.

An embodiment of the invention is not limited to the above-describedembodiment; it may be modified as follows.

In the above described embodiment, the AC motor that serves as theservomotor is used as each of the actuators; instead, each actuator maybe a DC motor, and a stepping motor, or the like, may also be used.

In the above-described embodiment, each link is rotated; instead, acylinder or a solenoid that serves as an actuator may be used tolinearly move the link with respect to the adjacent link. In this case,the position detector may be a linear potentiometer, a gap sensor, suchas a capacitance type or an eddy current type, or the like, whichdetects a linear displacement of the link.

In the above-described embodiment, the invention is implemented inseven-axis articulated robots; however, the invention is not limited tothe seven-axis articulated robots. Manipulators having six or less axesor manipulators having eight or more axes may be used instead. Both themanipulators are not always limited to manipulators having the samenumber of axes. Manipulators having different numbers of axes may beused in combination.

What is claimed is:
 1. A calibration method for a robot, comprising:coupling distal ends of a pair of manipulators to each other; settingone of the manipulators as a master robot; setting the other one of themanipulators as a slave robot; causing the master robot and the slaverobot to take a plurality of attitudes by outputting commands from acontrol device to actuators that drive links of the master robot in astate where the master robot and the slave robot are coupled to eachother; acquiring coordinates of joints between the links at the time ofeach attitude change on the basis of position detection signals ofposition detectors respectively provided at the actuators that drive thelinks of the master robot and links of the slave robot at the time ofeach attitude change; calculating, with circuitry, a position andattitude of an installation point of the slave robot at the time of eachattitude change with reference to an installation point of the masterrobot on the basis of the coordinates of the joints, which are acquiredat the time of the corresponding one of the attitude changes, in aforward kinematics manner; calculating with the circuitry, deviationsfor each attitude change between actual coordinates of the installationpoint of the slave robot and calculated coordinates of the installationpoint of the slave robot; and performing calibration of the robot byidentifying robot constants of the pair of manipulators from calculateddeviations.
 2. A calibration system for a robot, comprising: a pair ofmanipulators, each of which includes a plurality of links, actuatorsthat are respectively provided for joints of the links and that drivethe links and position detectors that are respectively provided for theactuators, that respectively detect positions of joint axes of the linksand that output position detection signals; a control unit includingcircuitry configured to set one of the manipulators as a master robotand the other one of the manipulators as a slave robot, the circuitryfurther configured to cause the master robot and the slave robot to takea plurality of attitudes by outputting commands to the actuators of themaster robot in a state where distal ends of the pair of manipulatorsare coupled to each other; a computing unit configured to acquirecoordinates of the joints between the links at the time of each attitudechange of an installation point of the slave robot with respect to aninstallation point of the master robot on the basis of the positiondetection signals, the computing unit being configured to calculate aposition and an attitude of the installation point of the slave robot atthe time of the corresponding one of the attitude changes on the basisof the coordinates of the joints in a forward kinematics manner; adeviation computing unit configured to calculate deviations for eachattitude change from actual coordinates of the installation point of theslave robot and calculated coordinates of the installation point of theslave robot; and an identification unit configured to performcalibration of the robot by identifying robot constants of the pair ofmanipulators from calculated deviations.